unist-util-map
![Size](https://img.shields.io/bundlephobia/minzip/unist-util-find-all-after.svg)
unist utility to create a new tree by mapping all nodes
with the given function.
Install
npm:
npm install unist-util-map
Usage
var u = require('unist-builder')
var map = require('unist-util-map')
var tree = u('tree', [
u('leaf', 'leaf 1'),
u('node', [u('leaf', 'leaf 2')]),
u('void'),
u('leaf', 'leaf 3')
])
var next = map(tree, function(node) {
return node.type === 'leaf'
? Object.assign({}, node, {value: 'CHANGED'})
: node
})
console.dir(next, {depth: null})
Yields:
{
type: 'tree',
children: [
{ type: 'leaf', value: 'CHANGED' },
{ type: 'node', children: [ { type: 'leaf', value: 'CHANGED' } ] },
{ type: 'void' },
{ type: 'leaf', value: 'CHANGED' }
]
}
…note that tree
is not mutated.
API
map(tree, mapFn)
Create a new tree by mapping all nodes with the given function.
Parameters
Returns
Node
— New mapped tree.
function mapFn(node[, index, parent])
Function called with a node to produce a new node.
Parameters
node
(Node
) — Current node being processedindex
(number?
) — Index of node
, or null
parent
(Node?
) — Parent of node
, or null
Returns
Node
— Node to be used in the new tree.
Its children are not used: if the original node has children, those are mapped.
Related
Contribute
See contributing.md
in syntax-tree/.github
for ways to get
started.
See support.md
for ways to get help.
This project has a Code of Conduct.
By interacting with this repository, organisation, or community you agree to
abide by its terms.
License
MIT © azu